#Python 学习

#循环语句 while \ for

###################     while 条件 :     ###################
'''


#正着 打印 1 - 10
i = 1
while i <= 10 :
    print(i)
    i += 1
print('------')
# #倒着 打印 1- 10
i = 10
while i > 0:
    print(i)
    i -= 1

print('------')

# #打印 1- 20中的奇数
num = 1
while num <= 20 :
    if num % 2 != 0 :
        print(num)
    num += 1

# # 计算 1- 100 的和
Sum = 0
Num = 1
while Num <= 100 :
    Sum += Num
    Num += 1

print(f"Sum = {Sum}")

print('----------')

# #计算 5!

ret = 1
i = 1
while i <= 5 :
    ret *= i
    i += 1
print(ret)
#
# # 计算 1! + 2! + 3! + 4! + 5!

fact = 1
Range = int(input('请输入你要求 1 - 多少的阶乘和 , 请输入这个数字 :'))
Sum = 0
# #阶乘范围
while fact <= Range :
    i = 1
    ret = 1
    while i <= fact :
        #求各个阶乘
        ret *= i
        i += 1
    #求和
    Sum += ret
    fact += 1

print(Sum)

###################     for :     ###################

# Python 中的 for循环比较特殊 , 用的迭代器

#  for 循环对象 in 迭代对象 :
#       循环体

# 迭代器相当于一个容器

# range() 内接函数 -- 迭代器 (存有整数)
# range() - 可传参 2个 或 3个 , 范围 : [ ) -- 左闭,右开 , 第三个参数是表示 : 步长

# eg :

fruit = [ "banana" , "apple", "grape"]

for x in fruit :
    print(x)

else :
    print('注意 : for 中的循环对象不需要提前声明就可以')
    print('此 else 语句是 for 中内容执行完毕后执行该代码块')


fruit = [ "banana" , "apple", "grape"]

# break

for x in fruit :
    if x == 'banana' :
        print('该水果是要的水果')
        break
    print(x)
else :
    print('注意 : for 中的循环对象不需要提前声明就可以')
    print('此 else 语句是 for 中内容执行完毕后执行该代码块')

fruit = [ "banana" , "apple", "grape"]

# continue

for x in fruit :
    if x == 'banana' :
        print('该水果是要的水果')
        continue
    print(x)
else :
    print('注意 : for 中的循环对象不需要提前声明就可以')
    print('此 else 语句是 for 中内容执行完毕后执行该代码块')


# # 正数用 for 打印 1- 10

for i in range(1,11) :
    print(i)

#倒数用 for 打印 1 - 10

# 加步长
for num in range(10,0, -1) :
    print(num)

#打印 0 - 10 的偶数

for num in range(0 , 11 , 2) :
    print(num)

#求 1 - 100 的和

Sum = 0

for i in range(1,101):
    Sum += i

print(Sum)


'''

#打印 九九乘法表

# i = 1
# while i<= 9 :
#     j = 1
#     while j <= i :
#         ret = i*j
#         print(f"{i} * {j} = {ret}\t" ,end = " ")
#         j += 1
#     i += 1
#     print()
#


for i in range(1 , 10):
    for j in range(1 , i + 1):
        ret = i * j
        print(f"{i} * {j} = {ret}\t" ,end = " ")  # /t 数据对齐的作用
    print()